﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;


namespace ReclutamientoCosea
{
    public static class Candidatos
    {
        private static AppSettingsReader settings = new AppSettingsReader();

        public static Candidato GetCandidato(string id)
        {
            Candidato candidato = new Candidato();

            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";

            try
            {
                bd.bdConecta();                

                strSQL = "SELECT [idcandidato] ";
                strSQL += "      ,[idpersona]";
                strSQL += "      ,[activo]";
                strSQL += "      ,[fechaalta]";
                strSQL += "      FROM [Cosea_Reclutamiento].[dbo].[Candidato]";
                strSQL += "      WHERE idcandidato = '{0}'";

                strSQL = string.Format(strSQL, id);

                DataSet ds = bd.dataSetConsulta(strSQL, "candidato");

                if (ds.Tables["candidato"].Rows.Count > 0)
                {
                    DataRow dr = ds.Tables["candidato"].Rows[0];
                    candidato.idcandidato = dr["idcandidato"].ToString();
                    candidato.idpersona = dr["idpersona"].ToString();
                    bool bActivo = bool.Parse(dr["activo"].ToString());
                    if (bActivo == true)
                        candidato.activo = "1";
                    else
                        candidato.activo = "0";
                    
                }                

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }
            
            return candidato;
        }

        public static DataSet GuardaCandidato(Candidato candidato, Persona persona)
        {

            DataSet ds = new DataSet ();
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));

            try
            {
                bd.bdConecta ();
                string sql1 = "exec SPInsPersona '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}',1";
                sql1 = string.Format (sql1,persona.nombre1,persona.nombre2 ,persona.apellido1,persona.apellido2,persona.calle,persona.colonia,
                    persona.municipio,persona.cp,persona.telefono1,persona.telefono2,persona.celular1,persona.celular2 ,
                    persona.fechanacimiento.ToString("yyyy/MM/dd"),persona.ciudadnacimiento ,persona.paisnacimiento ,
                    persona.comentarios,persona.email);
                DataTable dtPersona = bd.dataSetConsulta(sql1, "persona").Tables[0];

                string sql2 = "exec SPInsCandidato '{0}',1";
                sql2 = string.Format(sql2, dtPersona.Rows[0]["idpersona"].ToString());
                DataTable dtCandidato = bd.dataSetConsulta(sql2, "candidato").Tables[0];
                                              
                ds = new DataSet();
                ds.Tables.Add(dtPersona.Copy());
                ds.Tables.Add(dtCandidato.Copy());

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }
            return ds;
        }

        public static void ActualizaCandidato(Candidato candidato, Persona persona)
        {
            
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));

            try
            {
                bd.bdConecta();
                string sActivo = "";
                if (persona.activo == true)
                    sActivo = "1";
                else
                    sActivo = "0";

                string sql1 = "exec SPUpdPersona '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}',{17},'{18}'";
                sql1 = string.Format(sql1, persona.idpersona, persona.nombre1, persona.nombre2, persona.apellido1, 
                    persona.apellido2, persona.calle, persona.colonia,
                    persona.municipio, persona.cp, persona.telefono1, persona.telefono2, persona.celular1, persona.celular2,
                    persona.fechanacimiento.ToString("yyyy/MM/dd"), persona.ciudadnacimiento, persona.paisnacimiento,
                    persona.comentarios,sActivo,persona.email);
                int iEjecuta = 0;
                iEjecuta = bd.bdEjecuta(sql1);

                string sql2 = "exec SPUpdCandidato '{0}','{1}',{2}";
                sql2 = string.Format(sql2,candidato.idcandidato,candidato.idpersona,candidato.activo);
                iEjecuta = bd.bdEjecuta(sql2);
            

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }
            
        }

        public static DataSet GuardaCurriculum(Curriculum curr)
        {
            DataSet ds = new DataSet();
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));

            try
            {
                bd.bdConecta();
                string sql = "exec SPInsCurriculum " +
                    "'{0}'," +
                    "'{1}'," +
                    "'{2}'," +
                    "'{3}'," +
                    "'{4}'," +
                    "'{5}'," +
                    "1";

                sql = string.Format(sql,curr.idcandidato,curr.nombrecompleto ,
                    curr.expectativasprofesionales ,curr.estudiosrealizados,
                    curr.expectativasprofesionales ,curr.competencias ,
                    curr.competencias ,curr.habilidades);

                ds = bd.dataSetConsulta(sql, "curr");


            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }
            return ds;
        }

    }
}
